Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
03-10-2025

Inwerkingtreding:
03-10-2025

20.4 Wat zijn de reserves?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 20.4.0
2# Parameters: ?peildatum
3# Ontologie: versie 3.0.0 of nieuwer
4
5PREFIX onz-fin: <http://purl.org/ozo/onz-fin#>
6prefix onz-zorg:  <http://purl.org/ozo/onz-zorg#>
7PREFIX onz-g: <http://purl.org/ozo/onz-g#>
8PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
9
10SELECT ?Kental ?Waarde
11WHERE {
12    {
13        SELECT (SUM(IF(?jaarrekeningpost = "D Reserves", ?bedrag, 0)) AS ?reserves)
14        WHERE {
15            {
16                SELECT ?jaarrekeningpost (SUM(?bedrag_rubriek) AS ?bedrag)
17                WHERE {
18                    # BIND("2024-12-31"^^xsd:date AS ?peildatum)                     
19                    BIND(?peildatum AS ?peildatum_argument)
20                    {
21                        SELECT  # totaal per rubriek
22                            (SUM(?geld_bedrag) + SUM(?saldo_waarde)/count(?saldo_waarde) AS ?bedrag_rubriek) ?rubriek ?categorie
23                        WHERE {
24                            {
25                                SELECT  # bereken het meest recente saldo per rubriek, 0 indien geen saldo
26                                    ?rubriek ?categorie
27                                    (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde)
28                                    ?peildatum_argument
29                                    (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum)
30                                    ?saldo_datum ?saldo
31                                WHERE {
32                                    # BIND("2024-12-31"^^xsd:date AS ?peildatum)                                     
33									BIND(?peildatum as ?peildatum_argument)
34                                    # Dynamically identify rubrieken and assign categories
35                                    {
36                                        SELECT DISTINCT ?rubriek WHERE {
37                                            ?rubriek a onz-fin:Grootboekrubriek .
38                                            FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
39                                            FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
40                                        }
41                                    }
42                                    BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
43
44                                    # Assign category based on the ?rubriekCode pattern
45                                    BIND(
46                                        COALESCE(
47
48                                        # Rubriek D
49                                        IF(STRSTARTS(?rubriekCode, "05413"), "D.IV", ?unbound),
50                                        IF(STRSTARTS(?rubriekCode, "05311") || STRSTARTS(?rubriekCode, "05342") || STRSTARTS(?rubriekCode, "05423"), "D.V", ?unbound),
51                                        IF(STRSTARTS(?rubriekCode, "05323"), "D.VI", ?unbound),
52                                        IF(STRSTARTS(?rubriekCode, "0539") || STRSTARTS(?rubriekCode, "05493") || STRSTARTS(?rubriekCode, "05915"), "D.VII", ?unbound),
53                                        IF(STRSTARTS(?rubriekCode, "091"), "D.VIII", ?unbound),
54                                        "other"
55                                        ) AS ?categorie
56                                    )
57                                    FILTER(BOUND(?categorie))
58
59                                    OPTIONAL {
60                                        ?rubriek onz-g:isAbout ?saldo .
61                                        ?saldo
62                                            a onz-fin:EindSaldo ;
63                                            onz-fin:heeftGeldBedrag ?saldo_bedrag ;
64                                            onz-g:hasDate ?saldo_datum .
65                                        FILTER (?saldo_datum <= ?peildatum_argument)
66                                    }
67                                    FILTER NOT EXISTS {
68                                        ?rubriek onz-g:isAbout ?saldo2 .
69                                        ?saldo2
70                                            onz-g:hasDate ?saldo_datum2 ;
71                                            a onz-fin:EindSaldo ;.
72                                        FILTER(?saldo2 != ?saldo)
73                                        FILTER (?saldo_datum2 <= ?peildatum_argument && ?saldo_datum2 > ?saldo_datum)
74                                    }
75                                }
76                            }
77                            OPTIONAL {
78                                ?grootboek_post
79                                    a onz-fin:Grootboekpost ;
80                                    onz-g:partOf ?rubriek ;
81                                    onz-g:hasDate ?datum ;
82                                    onz-fin:heeftGeldBedrag ?geld_bedrag_temp .
83                                FILTER (?datum <= ?peildatum_argument && (?datum > ?begin_datum || !BOUND(?begin_datum)))
84                            }
85                            BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag)
86
87                        } GROUP BY ?rubriek ?categorie
88                    }
89
90                    VALUES (?categorie ?jaarrekeningpost){
91                    ("D.IV"   "D Reserves")
92                    ("D.V"    "D Reserves")
93                    ("D.VI"   "D Reserves")
94                    ("D.VII"  "D Reserves")
95                    ("D.VIII" "D Reserves")
96                    }
97                } GROUP BY ?jaarrekeningpost
98            }
99        }
100    }
101    
102    BIND("Reserves" AS ?Kental)
103    BIND(?reserves AS ?Waarde)
104}
105ORDER BY ?Kental